﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogicaNegocio;
using Entidades;
namespace PresentacionEscritorio
{
    public partial class frmConsultarCargos : Form, IOpcion
    {
        private string opElegida;
        private GestorCargo GC = new GestorCargo();
        private frmRegistrarCargo formCargo = null;
        public frmConsultarCargos()
        {
        //    opElegida = op;
            InitializeComponent();
        }

        private void frmConsultarCargos_Load(object sender, EventArgs e)
        {
            //CARGAMOS GRILLA
            cargarGrilla();

            switch (opElegida)
            {
                case Opcion.OpConsultar:
                    this.Text = "Consultar Cargo - TodoSalud";
                    LblConsCargo.Text = "Consultar Cargo";

                    break;
                case Opcion.OpModificar:
                    this.Text = "Modificar Cargo - TodoSalud";
                    LblConsCargo.Text = "Modificar Cargo";

                    break;
                case Opcion.OpDarBaja:
                    this.Text = "Dar baja a un Cargo - TodoSalud";
                    LblConsCargo.Text = "Dar Baja a Cargo";
                    break;
            }
        }
        //CARGAMOS GRILLA
        private void cargarGrilla()
        {
            List<Cargo> listCargos = GC.obtenerTodosActivos();
            int i = 0;
            dtgConsultarCargos.DataSource = null;
            dtgConsultarCargos.Rows.Clear();
            if (listCargos.Count > 0)
            {
                foreach (Cargo item in listCargos)
                {

                    i = dtgConsultarCargos.Rows.Add();
                    dtgConsultarCargos.Rows[i].Cells["Codigo"].Value = item.idCargo;
                    dtgConsultarCargos.Rows[i].Cells["nombre"].Value = item.nombre;
                    if (item.descripcion != null)
                    {
                        dtgConsultarCargos.Rows[i].Cells["descripcion"].Value = item.descripcion;
                    }
                    else
                    {
                        dtgConsultarCargos.Rows[i].Cells["descripcion"].Value = "S/D";
                    }

                    dtgConsultarCargos.Rows[i].Cells["fechaAlta"].Value = item.fechaAlta;
                }
            }


        }
        public bool Validar()
        {
            string error = "";
            bool validacion = true;
            if (txtFechaDesde.Text == null && txtNombreCargo.Text == null)
            {
                validacion = false;
                error = "Ingrese el nombre o fecha de vigencia";
            }
            return validacion;
            if (error != "")
            {
                MessageBox.Show(error, "Error", MessageBoxButtons.OK);
            }
        }
        //SET OPCION ELEGIDA
        public void setOpcion(string op)
        {
            opElegida = op;
        }
        //GET OPCION ELEGIDA
        public string getOpcion()
        {
            return opElegida;
        }
        //BUSCAMOS LOS DATOS DEL CARGO
        private void dtgConsultarCargos_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dtgConsultarCargos.CurrentCell.OwningColumn==dtgConsultarCargos.Columns["Seleccionar"])
            {
                int codCargo =Convert.ToInt32(dtgConsultarCargos.CurrentRow.Cells["Codigo"].Value);
                Cargo cargoSeleccionado = GC.obtenerCargo(codCargo);
                formCargo = new frmRegistrarCargo();
                formCargo.cargoSeleccionado = cargoSeleccionado;
                formCargo.setOpcion(opElegida);
                formCargo.Show();
            }
        }
        //FILTRAMOS LA BUSQUEDA
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            if (Validar())
            {
                string nombreCargo = "";
                DateTime? fechaDesdeCargo = null;
                if (!string.IsNullOrEmpty(txtNombreCargo.Text))
                {
                    nombreCargo = txtNombreCargo.Text;
                }
                //Verificar Error de Mascara
                if (txtFechaDesde.MaskFull)
                {
                    fechaDesdeCargo = DateTime.Parse(txtFechaDesde.Text);
                }

                List<Cargo> lstoC = GC.busquedaDeCargoPorNombreYFecha(nombreCargo, fechaDesdeCargo);
                int i = 0;
                dtgConsultarCargos.DataSource = null;
                dtgConsultarCargos.Rows.Clear();
                foreach (Cargo item in lstoC)
                {
                    i = dtgConsultarCargos.Rows.Add();
                    dtgConsultarCargos.Rows[i].Cells["Codigo"].Value = item.idCargo;
                    dtgConsultarCargos.Rows[i].Cells["nombre"].Value = item.nombre;
                    if (item.descripcion != null)
                    {
                        dtgConsultarCargos.Rows[i].Cells["descripcion"].Value = item.descripcion;
                    }
                    else
                    {
                        dtgConsultarCargos.Rows[i].Cells["descripcion"].Value = "S/D";
                    }

                    dtgConsultarCargos.Rows[i].Cells["fechaAlta"].Value = item.fechaAlta;
                }
            }


        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
    }
}
